package com.example.Utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtils {
    private static final String JWT_SECRET="jwt_secret";
    private static final long JWT_EXPIRATION= 12*60*60*1000;
    //生成jwt令牌的方法
    public static String getToken(Map<String,Object> claims){
        return Jwts.builder()
                // 使用HS256算法和JWT密钥对令牌进行签名
                .signWith(SignatureAlgorithm.HS256, JWT_SECRET)
                // 设置令牌的声明
                .setClaims(claims)
                // 设置令牌的过期时间
                .setExpiration(new Date(System.currentTimeMillis()+JWT_EXPIRATION))
                .compact();//生成

    }

    //解析jwt令牌
    public static Claims parseToken(String token) throws Exception{
        return Jwts.parser()//开始解析
                .setSigningKey(JWT_SECRET)//根据密钥解析
                .parseClaimsJws(token)//解析出声明
                .getBody();
    }
}
